#ifndef _FILE_SYSTEM_INFO_H__	
#define _FILE_SYSTEM_INFO_H__

#include <string>
#include <vector>
#include "Exceptions.h"

namespace FileSystem
{

class DirInfo;
class FileInfo;

typedef std::vector<DirInfo> VecDirs;
typedef std::vector<FileInfo> VecFiles;


class FileSystemInfo
{
public:
	FileSystemInfo(const std::string &fullName, const bool isDir);
	~FileSystemInfo();

	void MoveInto(const std::string &dirName);
	void RenameTo(const std::string &dest);
	void CopyTo(const std::string &dest);

	DirInfo GetParent() const;
	std::string GetName() const;
	std::string GetFullName() const;
	bool IsDir() const;

private:
	bool isDir;
	std::string fullName;	
	std::string name;
};

}

#endif // _FILE_SYSTEM_INFO_H__
